<?php

class Application_Model_Aposta
{
    protected $_email_usuario;
    protected $_id_jogo;
    protected $_id_bolao;
    protected $_placar_parcial;
    protected $_gols_time_a;
    protected $_gols_time_b;
    protected $_ordem_de_gols;

    public function  __construct($email_usuario, $id_jogo, $id_bolao, $placar_parcial, $gols_time_a, $gols_time_b, $ordem_de_gols) {

        $this->_email_usuario = $email_usuario;
        $this->_id_jogo = $id_jogo;
        $this->_id_bolao = $id_bolao;
        $this->_placar_parcial = $placar_parcial;
        $this->_gols_time_a = $gols_time_a;
        $this->_gols_time_b = $gols_time_b;
        $this->_ordem_de_gols = $ordem_de_gols;
    }

    public function getEmailUsuario(){
        return $this->_email_usuario;
    }

    public function getIdJogo(){
        return $this->_id_jogo;
    }

    public function getIdBolao(){
        return $this->_id_bolao;
    }

    public function getPlacarParcial(){
        return $this->_placar_parcial;
    }

    public function getGolsTimeA(){
        return $this->_gols_time_a;
    }

    public function getGolsTimeB(){
        return $this->_gols_time_b;
    }

    public function getOrdemGols(){
        return $this->_ordem_de_gols;
    }

    public function setEmailUsuario($email_usuario){
        $this->_email_usuario = $email_usuario;
        return $this;
    }

    public function setIdJogo($id_jogo){
        $this->_id_jogo = $id_jogo;
        return $this;
    }

    public function setIdBolao($id_bolao){
        $this->_id_bolao = $id_bolao;
        return $this;
    }

    public function setPlacarParcial($placar_parcial){
        $this->_placar_parcial = $placar_parcial;
        return $this;
    }

    public function setGolsTimeA($gols_time_a){
        $this->_gols_time_a = $gols_time_a;
        return $this;
    }

    public function setGolsTimeB($gols_time_b){
        $this->_gols_time_b = $gols_time_b;
        return $this;
    }

    public function setOrdemGols($ordem_gols){
        $this->_ordem_de_gols = $ordem_gols;
        return $this;
    }

    public static function fazerAposta($usuario, $jogo, $bolao, $placar_parcial, $gols_A, $gols_B, $ordem_gols, $valor){

        $pendenteMapper = new Application_Model_ParticipantesBolaoMapper();
        $usuarioMapper = new Application_Model_UsuarioMapper();

        $apostador = new Application_Model_Usuario(NULL, NULL, NULL, NULL, NULL, NULL, NULL);
        $usuarioMapper->find($usuario, $apostador);
        $bolitos = $apostador->getBolitos();

        $aposta = new Application_Model_Aposta($usuario, $jogo, $bolao, $placar_parcial, $gols_A, $gols_B, $ordem_gols);
        $persistencia = new Application_Model_ApostaMapper();
        $persistencia->inserir($aposta);
        $apostador->setBolitos($bolitos - $valor);
        $usuarioMapper->save($apostador);

        $pendenteMapper->remove($bolao, $usuario);

        return 'Aposta realizada com sucesso!';
    }

}
